Today's Question:  What does your personal desk look like?        GIVE A SHOUT

SEARCH KEYWORD -- Number theory



  Rediscovering the RSync Algorithm

A:Ok, you’re synchronizing this over the web; and what do you use for the synchronization? B: Oh, we implemented the rsync algorithm. A: uhu. And what do you do with really big files? B: The same. A: And you also synchronise folders? B: Yes. A: And how do you do that? B: we iterate over the folder, using the algorithm on every file, recursing over subfolders. A: Can you try 2 things for me? First, a very large file; and second, a large codebase, and see if it holds. Introduction First ...

   ReSync algorithm,Discovery     2012-02-14 10:47:24

  Mozilla releases a web identity system : Persona

Now almost every website requires the user to register, there are many benefits of registration for a website, such as retaining users, accommodating discussions, providing customized content and so on.But there is too much trouble if each site requires registration, right?Of course, users can also have their own way, for those less important sites, for example, using a unified user name, password and email so that you only need to remember one account. Then, we also see some advanced methods em...

   Mozilla,Persona,Security,ID     2012-09-28 12:02:25

  Speed Hashing

A given hash uniquely represents a file, or any arbitrary collection of data. At least in theory. This is a 128-bit MD5 hash you're looking at above, so it can represent at most 2128 unique items, or 340 trillion trillion trillion. In reality the usable space is substantially less; you can start seeing significant collisions once you've filled half the space, but half of an impossibly large number is still impossibly large. Back in 2005, I wondered about the difference between a checksum and...

   Speed hashing,Security,MD5     2012-04-07 10:35:15

  Sorry, I don't want to download your fucking app

You should not claim yourself as a mobile Internet service provider if your product doesn't have an App nowadays. The topic cannot get away from App when we talk on bus, restaurant. Recently it becomes a little bit quiet, but the app wind does not seem to stop, it seems every website may have an App. According to data released by Apple a couple of days ago, its application store app downloads already exceeded 50 billion. However some people are not happy with this.Some people created a blog ...

   App,Update,Force download     2013-05-19 02:50:02

  Traditional recursion vs Tail recursion

Recursion is a frequently adopted pattern for solving some sort of algorithm problems which need to divide and conquer a big issue and solve the smaller but the same issue first. For example, calculating fibonacci  accumulating sum and calculating factorials. In these kinds of issues, recursion is more straightforward than their loop counterpart. Furthermore, recursion may need less code and looks more concise. For example, let's calculate sum of a set of numbers starting with 0 and st...

   ALGORITHM,RECURSION,TAIL RECURSION,TRADITIONAL RECURSION     2016-09-23 23:54:09

  Currying in Python

What is Currying? Currying is like a kind of incremental binding of function arguments. Let’s define a simple function which takes 5 arguments: 1def f(a, b, c, d, e):2    print(a, b, c, d, e) In a language where currying is supported, f is a function which takes one argument (a) and returns a function which takes 4 arguments. This means that f(5) is the following function: 1def g(b, c, d, e):2    f(5, b, c, d, e) We could emulate this behavior the...

   Python,Curring,Binding,Implement     2012-03-19 12:59:10

  Different types of font icons

A website with just text belongs to the pre Web 2.0 era. A modern site will have different icons appearing on different places on the site. This will give the visitor a better visual feeling. But to have a set of consistent and well crafted icons is not an easy task. It may even require a dedicated icon designer to design them. Fortunately, we now can use font icons provided by many people around the web. Today we will introduce some of them. Font Awesome Font Awesome is an open source font ico...

   font icon, web design, font awesome     2015-07-19 06:22:48

  Polymorphism in OOP programming

Polymorphism is the capability of an action or method to do different things based on the object that it is acting upon. This is the third basic principle of object oriented programming. Overloading, overriding and dynamic method binding are three types of polymorphism. Overloaded methods are methods with the same name signature but either a different number of parameters or different types in the parameter list. For example 'spinning' a num...

   Java,OOP,Polymorphism,Overloading,Overri     2014-10-23 08:11:50

  A Month With Scala

Although I’ve played around with Scala for the few months, these efforts largely involved simple scripts and casual reading. It wasn’t until last month that the opportunity to use Scala in a large scale project finally arose and I dove right in. The project was a typical REST based web service built on top of Amazon’s Elastic Beanstalk, SimpleDB, S3 and Redis*. First off let’s talk about why I chose Scala in the first place. After spending a good deal of my las...

   Scala,Functional,OOP,Java,Iteration     2011-12-10 06:03:23

  Supercolliding a PHP array

Did you know that inserting 2^16 = 65536 specially crafted values into a normal PHP array can take 30 seconds? Normally this would take only 0.01 seconds. This is the code to reproduce it: <?php echo '<pre>'; $size = pow(2, 16); // 16 is just an example, could also be 15 or 17 $startTime = microtime(true); $array = array(); for ($key = 0, $maxKey = ($size - 1) * $size; $key <= $maxKey; $key += $size) { $array[$key] = 0; } $endTime = microtime(true); echo 'Inserting...

   PHP,Array,hashtable,Slow,Colliding     2011-12-29 09:02:01